// 最大公约束 欧几里得算法
// 测试链接 ：https://www.luogu.com.cn/problem/P1029
// 相关帖子 ：https://www.cnblogs.com/dx123/p/16684281.html
// 相关帖子 ：https://oi-wiki.org/math/number-theory/gcd/
// 提交以下的code，可以直接通过

#include <bits/stdc++.h>

using namespace std;

#define ll long long

ll gcd1(ll a, ll b)
{
    return b ? gcd1(b, a % b) : a;
}

ll gcd2(ll a, ll b)
{
    while (b != 0)
    {
        int tmp = a;
        a = b;
        b = tmp % b;
    }
    return a;
}

int main()
{
    // x : 最大公约数
    // y : 最小公倍数
    ll x, y, ans = 0;
    scanf("%lld%lld", &x, &y);
    ll t = x * y;
    for(ll i = 1; i * i <= t; ++i)
    {
        // gcd(p, q) * lcm(p, q) == x * y
        // gcd(i, t / i)
        // i : p  t / i : q
        if(t % i == 0 && gcd1(i, t / i) == x) ans += 2;
    }
    // x = 5, y = 5
    if(x == y) --ans;
    printf("%lld\n", ans);

    return 0;
}